package consul

import (
	"fmt"
	"github.com/hashicorp/consul/api"
	"log"
)

// GetNode 没有watch的api 无法感知结点的变更，如果做本地缓存则需要启动协程去定时轮询，全量更新到本地缓存
func GetNode(svrName string) {
	// 创建Consul客户端连接
	client, err := api.NewClient(&api.Config{
		Address: fmt.Sprintf("http://%v:%v", consulIp, consulPort),
	})
	if err != nil {
		log.Fatalf("client 创建失败，退出:%v\n", err)
	}

	// 根据服务名和tag 是否健康检查通过 以及其它option 筛选service实例
	service, meta, serr := client.Health().Service(svrName, "", true, nil)
	log.Printf("结束svr%+v,meta:%+v, err:%v\n", service, meta, serr)
	for _, s := range service {
		fmt.Printf("服务：%+v\n", s.Service)
	}

}
